package cn.iocoder.yudao.module.member.agency.service;

import cn.iocoder.yudao.framework.business.basic.service.SimpleDetailService;
import cn.iocoder.yudao.framework.business.eligibility.service.AppEligibilityService;
import cn.iocoder.yudao.module.api.member.agency.enums.AgencyLevelEnum;
import cn.iocoder.yudao.module.member.agency.dal.dataobject.AgencyApplyDO;
import cn.iocoder.yudao.module.member.agency.dal.dataobject.AgencyOrderDO;
import cn.iocoder.yudao.module.member.agency.dal.dataobject.AgencyUserDO;
import cn.iocoder.yudao.module.member.agency.vo.AppAgencyUserVO;
import jakarta.annotation.Nullable;

/**
 * 招商人员信息 Service 实现类
 *
 * @author 山野羡民
 */
public interface AppAgencyUserService extends AppEligibilityService<AgencyUserDO, AgencyOrderDO>, SimpleDetailService<AppAgencyUserVO> {

    /**
     * 校验招商人员是否有效
     *
     * @param userId 用户编号
     * @param level 级别
     */
    boolean isValid(Long userId, @Nullable AgencyLevelEnum level);

    /**
     * 审核通过后，更新招商人员信息
     *
     * @param aDo 招商人员信息
     */
    void updateWhenAuditPassed(AgencyApplyDO aDo);

    /**
     * 招商人员过期
     *
     * @return 过期个数
     */
    int agencyExpireBySystem();

}